/*
============================================================================
 Name        : $(classname)View.h
 Author	     : $(author)
 Copyright   : $(copyright)
 Description : Declares view class for application.
============================================================================
*/

#ifndef $(classname$upper)VIEW_H
#define $(classname$upper)VIEW_H

// INCLUDES
#include <aknview.h>


// CONSTANTS
// UID of view
const TUid K$(classname)ViewId = {1};  

// FORWARD DECLARATIONS
class C$(classname)Container;

// CLASS DECLARATION

/**
*  C$(classname)View view class.
* 
*/
class C$(classname)View : public CAknView
	{
	public: // Constructors and destructor
	
		static C$(classname)View* NewL();
		static C$(classname)View* NewLC();

		/**
		* EPOC default constructor.
		*/

		/**
		* Destructor.
		*/
		~C$(classname)View();

	public: // Functions from base classes
		
		/**
		* From CAknView returns Uid of View
		* @return TUid uid of the view
		*/
		TUid Id() const;

		/**
		* From MEikMenuObserver delegate commands from the menu
		* @param aCommand a command emitted by the menu 
		* @return void
		*/
		void HandleCommandL(TInt aCommand);

		/**
		* From CAknView reaction if size change
		* @return void
		*/
		void HandleClientRectChange();

	private:

		/**
		* From CAknView activate the view
		* @param aPrevViewId 
		* @param aCustomMessageId 
		* @param aCustomMessage 
		* @return void
		*/
		void DoActivateL(const TVwsViewId& aPrevViewId,TUid aCustomMessageId,
			const TDesC8& aCustomMessage);

		/**
		* From CAknView deactivate the view (free resources)
		* @return void
		*/
		void DoDeactivate();
		
	private:
		C$(classname)View();
		void ConstructL();


	private: // Data
		C$(classname)Container* iContainer;
	};

#endif


